Bingo, Computer Graphics & Game Developer

Transforming Between Distributions

关于连续型随机变量的分布转换,除了使用反CDF函数将均匀分布函数转换为其他分布函数以外,存在一种通用办法实现不同分布之间的转换,不只局限于均匀分布。

假定存在随机变量XX,其累积分布函数为FX(x)F_X(x)。若存在单调函数gg,使得Y=g(X)Y=g(X)(因为是单调函数,因此XXYY的关系为单射),则为了计算YY的累积分布函数FY(y)F_Y(y)

g(x)g(x)此时为严格单调递增

FY(y)=Pr{Yy}=Pr{g(X)y}=Pr{Xg1(y)}=FX(g1(y))
\begin{array}{l}
F_Y(y) & = & Pr\{ Y\leqslant y \} \\
& = & Pr\{g(X)\leqslant y\} \\
& = & Pr\{ X\leqslant g^{-1}(y) \} \\
& = & F_X(g^{-1}(y))
\end{array}

此时对终式左右对x求导(累积分布函数导数为概率密度函数)

fY(y)dydx=fX(g1(y))fY(y)=(dydx)1fX(g1(y))
\begin{array}{l}
f_Y(y)\frac{dy}{dx}=f_X(g^{-1}(y)) \\
f_Y(y) = (\frac{dy}{dx})^{-1}f_X(g^{-1}(y)) \\
\end{array}

再设g(x)g(x)此时为严格单调递减

FY(y)=Pr{Yy}=Pr{g(X)y}=1Pr{Xg1(y)}=1FX(g1(y))
\begin{array}{l}
F_Y(y) & = & Pr\{ Y\leqslant y \} \\
& = & Pr\{g(X)\leqslant y\} \\
& = & 1 - Pr\{ X\leqslant g^{-1}(y) \} \\
& = & 1 - F_X(g^{-1}(y))
\end{array}

同样的有
fY(y)=(dydx)1fX(g1(y))f_Y(y) = -(\frac{dy}{dx})^{-1}f_X(g^{-1}(y))

则有fY(y)=(dydx)1fX(g1(y))f_Y(y) = \vert (\frac{dy}{dx})^{-1} \vert f_X(g^{-1}(y))

PBRT中讲到,当我们有一概率密度为px(x)p_x(x)的随机变量XX,想要转换为满足已知分布为py(y)p_y(y)的随机变量YY,那么即有下式成立(此过程与上式正好相反)

FX(x)=Pr{Xx}=Pr{g(X)g(x)}=Pr{Yg(x)}=FY(g(x))
\begin{array}{l}
F_X(x) & = & Pr\{ X\leqslant x \} \\
& = & Pr\{g(X)\leqslant g(x)\} \\
& = & Pr\{ Y\leqslant g(x) \} \\
& = & F_Y(g(x))
\end{array}

g(x)=FY1(FX(x))g(x) = F_Y^{-1}(F_X(x))或当g(X)g(X)为单调减函数时g(x)=FY1(1FX(x))g(x) = F_Y^{-1}(1 - F_X(x)),PBRT中未对此处进行详细说明。

因此当XX为满足[0,1][0, 1]区间均匀分布的随机变量时,FX(x)=xF_X(x)=x,那么上式中FX(x))F_X(x))或是1FX(x)1 - F_X(x)都满足[0,1][0, 1]区间均匀分布,则g(x)=FY1(x)g(x)=F_Y^{-1}(x),即Inverse Transform Sampling得证。

多维随机变量的转换T(x)T(x)为双射变换,则满足fY(y)=fY(T(x))=fX(x)JT(x)f_Y(y)=f_Y(T(x))=\frac{f_X(x)}{\vert J_T(x)\vert },且T(x)=(T1(x),Tn(x))T(x)=(T_1(x),\cdots T_n(x))

JT(x)=[T1x1T1xnTnx1Tnxn]J_T(x)=\left[
\begin{matrix}
\frac{\partial T_1}{\partial x_1} & \cdots & \frac{\partial T_1}{\partial x_n} \\
\vdots & \ddots & \vdots \\
\frac{\partial T_n}{\partial x_1} & \cdots & \frac{\partial T_n}{\partial x_n} \\
\end{matrix}
\right]